在创建 Alpha 时,你可以通过添加条件来精细控制你的交易行为。这就像给你的策略设置一些“如果……就……”的规则,让它变得更聪明。你可以使用常见的逻辑操作符(>、<、>=、<=、== 等)来创建这些条件。
- 例子: 如果你想只在股票成交量比平时高时才进行交易,你可以设置条件为
volume > adv20。
💡 注意: 过于严格的条件可能会减少你的交易机会,同时增加“过拟合”的风险,也就是你的策略只在历史数据上表现的特别好,但在未来却失效。
if_else():简单的条件判断 🔀
if_else() 是一个非常基础但强大的操作符,它能根据条件返回不同的值。
- 基本用法:
if_else(条件, 如果条件为真,返回这个值, 如果条件为假,返回这个值) - 简化写法: 就像我们之前在动量策略中看到的,你也可以使用更简洁的
条件 ? 值1 : 值2格式,效果是一样的。
trade_when():决定何时交易 🎯
trade_when() 是一个更高级的操作符,它能让你精确控制 Alpha 模型的“入场”和“出场”时机,只在满足特定条件时才更新仓位。
trade_when() 需要三个输入:
- 入场条件(
entry_condition):- 当这个条件为真时,系统会根据你的 Alpha 表达式来计算并更新你的仓位。
- 例子: 你可以设定
volume > adv20作为入场条件,意思是只有当成交量异常高时,才开始使用你的 Alpha 模型进行交易。
- Alpha 表达式(
Alpha):- 当入场条件满足时,系统会执行你的 Alpha 公式来决定具体买卖什么。
- 例子: 在动量策略中,这个表达式可以是
ts_sum(returns > 0 ? 1 : 0, 250)。
- 出场条件(
exit_condition):- 当这个条件为真时,系统会平掉你之前建立的仓位(即清仓)。
- 例子: 如果你不想清仓,可以将出场条件设置为
-1。
- 工作流程:
- 入场时: 如果入场条件为真,每天都更新你的仓位。
- 出场时: 如果出场条件为真,平掉仓位。
- 两者都为假时: 保持你上一次入场时的仓位不变,直到下次入场或出场条件满足。